import com.google.appengine.api.datastore.*
import static com.google.appengine.api.datastore.FetchOptions.Builder.*
import com.pobos.model.*

def perfil 

def sesion = request.getSession(true)
def usuario = sesion.getAttribute('usuario')
def idPregunta = params.idPregunta
def contidoResposta = params.resposta


if (usuario) {	
	perfil = sesion.getAttribute('perfil')
	
	if (!perfil) {
		request.erro = "Tes que crear un perfil cos teus datos antes de xerar contidos."
		forward '/perfil.gtpl'
	}
	
} else {
	redirect '/login.gtpl'
}

try {

	if (idPregunta && contidoResposta) {	
		Entity pregunta = obtenPregunta(idPregunta)
		
		if (pregunta) {
			//Crea unha resposta
			Entity resposta = new Entity("Resposta")
			resposta.pregunta = pregunta.key?.id
			resposta.dataCreacion = new Date()
			resposta.nomePerfil = perfil.nome
			resposta.idAvatar = perfil.imaxe
			resposta.idPerfil = perfil.key.id
			Text textoResposta = new Text(contidoResposta)
			resposta.contido = textoResposta
			
			resposta.save()
			
			if (pregunta.respostas) {
				pregunta.respostas << resposta.key?.id
			} else {
				pregunta.respostas = [resposta.key?.id]
			}
			
			pregunta.save()
			request.mensaxe="Resposta enviada."
			request.contido=""
			request.pregunta = pregunta
			request['idPregunta'] = idPregunta
		
			forward "/WEB-INF/groovy/verPregunta.groovy?id=${idPregunta}"
			
			
					
		} 
				
		
	} else {
		request.erro = "Non se atopou esa pregunta!"
		forward '/erro.gtpl'
	}

} catch (Exception e) {
	request.erro = "Produciuse un erro inesperado."
	request.idPregunta = idPregunta	
	forward '/verPregunta.gtpl'	
	
	
}


	



def obtenPregunta(String id) {
	def key = KeyFactory.createKey("Pregunta", Long.parseLong(id))			
	return datastore.get(key)
}  






